package com.rtline.business.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * <p>RateLimit .
 *
 * <p>change history:
 *
 * <pre>
 * date         defect       person          comments
 * --------------------------------------------------------------------------------
 * 2025/6/5    ********     Tao Ren    create file.
 * </pre>
 *
 * @author Tao Ren
 * @date 2025/6/5 19:12
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RateLimit {
    int limit() default 1; // 每个时间窗口允许的请求次数，默认为1
    long period() default 1; // 时间窗口的时长，单位为秒，默认为1秒
    String resource() default ""; // 资源标识，用于区分不同的限流对象
    String message() default "Rate limit exceeded"; // 自定义限流消息
}
